package scripts.salidasDeRobots;

import org.apache.log4j.Logger;

public class PosicionamientoSegundoAtaque {
	
	Logger logger = Logger.getLogger( this.getClass());

	// POSICIONAMIENTO DE LA SEGUNDA OLEADA DE ATAQUE
	protected String armarSegundoAtaque(){
		String resultado = null;
		
		logger.info( "Comienzo a armar posicionamiento de Segunda ola de ataque" );
		
		resultado = "\t// POSICIONAMIENTO DE LA SEGUNDA OLEADA DE ATAQUE\n" + 
					"\tif(posicionado == false) {\n" + 
					"\t\t// ESTRATEGIA DE SALIDA EN EL MAPA\n" + 
					"\t\tgetLocation(ejeX, ejeY)\n" +          
					"\t\tabsEjeX = abs(ejeX)\n" + 
					"\t\tabsEjeY = abs(ejeY)\n" + 
					"\t\tif ((ejeX < 0) && (ejeY < 0)){ // ESTAN EN EL CUADRANTE 1 DEL MAPA\n" + 
					"\t\t\tif (absEjeX <= absEjeY){\n" + 
					"\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\tif ((direccionActual >= (Pi/6)) && (direccionActual <= ((7*Pi)/6))){\n" + 
					"\t\t\t\t\tdiferencia = (direccionActual - (Pi/6))\n" + 
					"\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t} else {\n" + 
					"\t\t\t\t\tif ((direccionActual > ((7*Pi)/6)) && (direccionActual <= (2*Pi))){\n" + 
					"\t\t\t\t\t\tdiferencia = (2*Pi - direccionActual + (Pi/6))\n" + 
					"\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\tif ((direccionActual > 0) && (direccionActual < (Pi/6))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = ((Pi/6) - direccionActual)\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t}\n" + 
					"\t\t\t\t}	\n" + 
					"\t\t\t\tposicionado = true\n" + 
					"\t\t\t} else {// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\tif ((direccionActual >= (Pi/3)) && (direccionActual <= ((4*Pi)/3))){\n" + 
					"\t\t\t\t\tdiferencia = (direccionActual - (Pi/3))\n" + 
					"\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t} else {\n" + 
					"\t\t\t\t\tif ((direccionActual > ((4*Pi)/3)) && (direccionActual <= (2*Pi))){\n" + 
					"\t\t\t\t\t\tdiferencia = (2*Pi - direccionActual + (Pi/3))\n" + 
					"\t\t\t\t\t\ttrotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\ttrotate(rotacion)\n" + 
					"\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\tif ((direccionActual > 0) && (direccionActual < (Pi/3))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = ((Pi/3) - direccionActual)\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t}\n" + 
					"\t\t\t\t}\n" + 
					"\t\t\t\tposicionado = true\n" + 
					"\t\t\t}		\n" + 
					"\t\t} else {\n" + 
					"\t\t\tif ((ejeX < 0) && (ejeY > 0)){   // ESTAN EN EL CUADRANTE 2\n" + 
					"\t\t\t\tif (absEjeX <= absEjeY){\n" + 
					"\t\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\t\tif ((direccionActual >= ((5*Pi)/6)) && (direccionActual <= ((11*Pi)/6))){\n" + 
					"\t\t\t\t\t\tdiferencia = (((11*Pi)/6) - direccionActual)\n" + 
					"\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\tif ((direccionActual >= 0) && (direccionActual < ((5*Pi)/6))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = (2*Pi - ((11*Pi)/6) + direccionActual)\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\tif ((direccionActual > ((11*Pi)/6)) && (direccionActual < (2*Pi))){\n" + 
					"\t\t\t\t\t\t\t\tdiferencia = (direccionActual - ((11*Pi)/6))\n" + 
					"\t\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t}\n" + 
					"\t\t\t\t\tposicionado = true\n" + 
					"\t\t\t\t} else {\n" + 
					"\t\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\t\tif ((direccionActual >= ((2*Pi)/3)) && (direccionActual <= ((5*Pi)/3))){\n" + 
					"\t\t\t\t\t\tdiferencia = (((5*Pi)/3) - direccionActual)\n" + 
					"\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\tif ((direccionActual >= 0) && (direccionActual < ((2*Pi)/3))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = (2*Pi - ((5*Pi)/3) + direccionActual)\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\tif ((direccionActual > ((5*Pi)/3)) && (direccionActual < (2*Pi))){\n" + 
					"\t\t\t\t\t\t\t\tdiferencia = (direccionActual - ((5*Pi)/3))\n" + 
					"\t\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t}\n" + 
					"\t\t\t\t\tposicionado = true\n" + 
					"\t\t\t\t}\n" + 
					"\t\t\t} else{\n" + 
					"\t\t\t\tif ((ejeX > 0) && (ejeY > 0)) {  // ESTAN EN EL CUADRANTE 3\n" + 
					"\t\t\t\t\tif (absEjeX <= absEjeY){\n" + 
					"\t\t\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\t\t\tif ((direccionActual >= (Pi/6)) && (direccionActual <= ((7*Pi)/6))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = (((7*Pi)/6) - direccionActual)\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\tif ((direccionActual > ((7*Pi)/6)) && (direccionActual <= (2*Pi))){\n" + 
					"\t\t\t\t\t\t\t\tdiferencia = (direccionActual - ((7*Pi)/6))\n" + 
					"\t\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\t\tif ((direccionActual > 0) && (direccionActual < (Pi/6))){\n" + 
					"\t\t\t\t\t\t\t\t\tdiferencia = (((7*Pi)/6) - direccionActual)\n" + 
					"\t\t\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\tposicionado = true\n" + 
					"\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\t\t\tif ((direccionActual >= (Pi/3)) && (direccionActual <= ((4*Pi)/3))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = (((4*Pi)/3) - direccionActual)\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\tif ((direccionActual > ((4*Pi)/3)) && (direccionActual <= (2*Pi))){\n" + 
					"\t\t\t\t\t\t\t\tdiferencia = (direccionActual - ((4*Pi)/3))\n" + 
					"\t\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\t\tif ((direccionActual > 0) && (direccionActual < (Pi/3))){\n" + 
					"\t\t\t\t\t\t\t\t\tdiferencia = (((4*Pi)/3) - direccionActual)\n" + 
					"\t\t\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\tposicionado = true\n" + 
					"\t\t\t\t\t}\n" + 
					"\t\t\t\t} else {   // ESTAN EN EL CUADRANTE 4\n" + 
					"\t\t\t\t\tif (absEjeX <= absEjeY){\n" + 
					"\t\t\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\t\t\tif ((direccionActual >= ((5*Pi)/6)) && (direccionActual <= ((11*Pi)/6))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = (direccionActual - ((5*Pi)/6))\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\tif ((direccionActual >= 0) && (direccionActual < ((5*Pi)/6))){\n" + 
					"\t\t\t\t\t\t\t\tdiferencia = (((5*Pi)/6) - direccionActual)\n" + 
					"\t\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\t\tif ((direccionActual > ((11*Pi)/6)) && (direccionActual < (2*Pi))){\n" + 
					"\t\t\t\t\t\t\t\t\tdiferencia = (2*Pi - (direccionActual - ((5*Pi)/6)))\n" + 
					"\t\t\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\tposicionado = true\n" + 
					"\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t// VER PARA QUE LADO CONVIENE GIRAR MEJOR\n" + 
					"\t\t\t\t\t\tnew float:direccionActual = getDirection()\n" + 
					"\t\t\t\t\t\tnew float:diferencia = 0.0\n" + 
					"\t\t\t\t\t\tnew float:rotacion = 0.0\n" + 
					"\t\t\t\t\t\tif ((direccionActual >= ((2*Pi)/3)) && (direccionActual <= ((5*Pi)/3))){\n" + 
					"\t\t\t\t\t\t\tdiferencia = (direccionActual - ((2*Pi)/3))\n" + 
					"\t\t\t\t\t\t\trotacion = direccionActual - diferencia\n" + 
					"\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\tif ((direccionActual >= 0) && (direccionActual < ((2*Pi)/3))){\n" + 
					"\t\t\t\t\t\t\t\tdiferencia = (((2*Pi)/3) - direccionActual)\n" + 
					"\t\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t} else {\n" + 
					"\t\t\t\t\t\t\t\tif ((direccionActual > ((5*Pi)/3)) && (direccionActual < (2*Pi))){\n" + 
					"\t\t\t\t\t\t\t\t\tdiferencia = (2*Pi - (direccionActual - ((2*Pi)/3)))\n" + 
					"\t\t\t\t\t\t\t\t\trotacion = direccionActual + diferencia\n" + 
					"\t\t\t\t\t\t\t\t\trotate(rotacion)\n" + 
					"\t\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\t}\n" + 
					"\t\t\t\t\t\tposicionado = true\n" + 
					"\t\t\t\t\t}\n" + 
					"\t\t\t\t}\n" + 
					"\t\t\t}\n" + 
					"\t\t}\n\n" + 
					"\t\tif (posicionado == true){ // ESPERO QUE TERMINE EL GIRO DE LA SEGUNDA OLA DE ATAQUE\n" + 
					"\t\t\twait(2.0)\n" + 
					"\t\t\twalk()\n" + 
					"\t\t\twait(0.04)\n" + 
					"\t\t\trun()\n" + 
					"\t\t\twait(4.0)\n" + 
					"\t\t}\n" + 
					"\t}\n";
		
		logger.info("Termino de Armar POSICIONAMIENTO DE LA SEGUNDA OLEADA DE ATAQUE");
		//logger.debug(resultado);
		
		return resultado;
	}
	
}
